﻿using HK.Core.Common.Protocol.Data;
using HK.Core.Serializable.Protocol.Data;

namespace HK.Editor.Settings.Protocol.Data
{
    /// <summary>
    /// 接口 : 打包资源配置
    /// </summary>
    public interface IBuildResourceConf : IJsonData
    {
        
#region Version

        /// <summary>
        /// 母包版本
        /// </summary>
        ISAssetVersion OriginVersion { get; }

        /// <summary>
        /// 重置母包版本
        /// </summary>
        /// <param name="iVersion">母包版本</param>
        /// <returns>true:有变化; false:无变化;</returns>
        bool ResetOriginVersion(string iVersion);

        /// <summary>
        /// 上一母包版本
        /// </summary>
        ISAssetVersion LastOriginVersion { get; }
        
        /// <summary>
        /// 重置上一次母包版本
        /// </summary>
        /// <param name="iVersion">母包版本</param>
        /// <returns>true:有变化; false:无变化;</returns>
        bool ResetLastOriginVersion(string iVersion);

        /// <summary>
        /// 补丁版本
        /// </summary>
        ISAssetVersion PatchVersion { get; }
        
        /// <summary>
        /// 重置补丁版本
        /// </summary>
        /// <param name="iVersion">母包版本</param>
        /// <returns>true:有变化; false:无变化;</returns>
        bool ResetPatchVersion(string iVersion);

        /// <summary>
        /// 上一补丁版本
        /// </summary>
        ISAssetVersion LastPatchVersion { get; }
        
        /// <summary>
        /// 重置上一次母包版本
        /// </summary>
        /// <param name="iVersion">母包版本</param>
        /// <returns>true:有变化; false:无变化;</returns>
        bool ResetLastPatchVersion(string iVersion);

#endregion

    }
}